<!--
@Descripttion 柱状图
@version 1.0.0
@Author Bell
@ 使用
  引入组件
    import EBar from '@/components/echarts/e-bar'
  注册组件
    components: {
      EBar
    }
  使用
    <EBar chartsData="{}" />
    data  Object  必填  数据
      {
        category: [], // 类目轴
        data: [[], []] // 数据轴 二维数组
      }
 -->
<template>
  <div ref="echartsRef" class="echarts-box"></div>
</template>

<script>
import Echarts from 'echarts'

export default {
  name: 'e-bar',
  props: {
    chartsData: {
      type: Object,
      required: true
    }
  },
  data() {
    return {
      echartsDiv: null
    }
  },
  watch: {
    chartsData: {
      handler(newV, oldV) {
        this.init()
      }
    }
  },
  mounted() {
    // 初始化echarts实例
    this.echartsDiv = Echarts.init(this.$refs.echartsRef)
  },
  methods: {
    init() {
      const option = {
        grid: {
          y: 25
        },
        tooltip: {
          show: true
        },
        xAxis: {
          type: 'category',
          data: this.chartsData.category,
          // 坐标轴刻度标签
          axisLabel: {
            textStyle: {
              color: '#c0c4cc', // 文字颜色
              fontSize: 14 // 文字大小
            }
          },
          // 坐标轴轴线
          axisLine: {
            lineStyle: {
              color: '#315070' // 线的颜色
            }
          },
          // 刻度线
          axisTick: {
            show: false
          }
        },
        yAxis: {
          type: 'value',
          // 坐标轴刻度标签
          axisLabel: {
            textStyle: {
              color: '#c0c4cc', // 文字颜色
              fontSize: 12 // 文字大小
            }
          },
          // 坐标轴轴线
          axisLine: {
            lineStyle: {
              color: '#315070' // 线的颜色
            }
          },
          // 刻度线
          axisTick: {
            show: false
          },
          // 区域中的分割线
          splitLine: {
            lineStyle: {
              color: ['#315070'],
              width: 1,
              type: 'solid'
            }
          }
        },
        series: []
      }
      // 数据处理
      for (const item of this.chartsData.data) {
        option.series.push({
          data: item,
          type: 'bar'
        })
      }
      // 绘制图表
      this.echartsDiv.setOption(option)
    }
  }
}
</script>
<style lang="less" scoped>
.echarts-box {
  width: 100%;
  height: 100%;
}
</style>
